package com.ntd.study.lazy;

import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.map.MapUtil;
import ntd.util.UtilLog;

import java.util.function.Supplier;

/**
 * 惰性计算机制
 */
public class NtdSupplier {

    public static void main(String[] args) {
        // 采用惰性计算
        Supplier<Integer> a = () -> 10 + 1;
        // 使用的时候使用get方式获取，当调用get方法的时候才会执行惰性计算的逻辑拿到结果
        int b = a.get() + 1;
        UtilLog.info(b);


        // 采用惰性计算加缓存
        NtdLazy<Integer> ntdLazy = NtdLazy.of(() -> 10 + 1);

        UtilLog.info(ntdLazy.initVal());
    }

}
